
package component.fulltextsearch.index;

import java.util.Set;

import component.fulltextsearch.entity.CommonUserDocument;
import component.fulltextsearch.entity.UserDocument;

/** 
 *  用户主动操作接口。 业务系统使用该接口操作索引
 */
public interface IIndexOperate {
	/** 
	 *  根据业务KeyValue删除索引, 此处的KeyValue=建立索引时候的UserDocument中的KeyValue的值。
	 */
	public boolean deleteIndex(String keyValue);

	/** 
	 *  根据业务KeyValue的集合批量删除索引, 此处的KeyValue=建立索引时候的UserDocument中的KeyValue的值
	 */
	public boolean deleteIndex(Set keyValueSet);
	
	/**
	 * 根据删除标记删除所有索引
	 */
	public boolean deleteAllIndex();


	/** 
	 *  根据CommonUserDocument建立索引。
	 */
	public boolean createCommonIndex(CommonUserDocument commonUserDoc);

	/** 
	 *  根据CommonUserDocument的集合建立索引
	 */
	public boolean createCommonIndex(Set commonUserDocSet);
	

	/** 
	 *  根据UserDocument建立索引。
	 */
	public boolean createIndex(UserDocument userDoc);

	/** 
	 *  根据UserDocument的集合建立索引
	 */
	public boolean createIndex(Set userDocSet);
	

	/** 
	 *  根据CommonUserDocument更新索引。
	 */
	public boolean updateCommonIndex(CommonUserDocument commonUserDoc);

	/** 
	 *  根据CommonUserDocument的集合更新索引
	 */
	public boolean updateCommonIndex(Set commonUserDocSet);
	

	/** 
	 *  根据UserDocument更新索引。
	 */
	public boolean updateIndex(UserDocument userDoc);

	/** 
	 *  根据UserDocument的集合更新索引
	 */
	public boolean updateIndex(Set userDocSet);
}